昨天,我們完成了行程管家小助手的 後端整合,讓系統能夠根據使用者輸入進行語意理解與回應。
今天,終於要開始最關鍵的一步 —— 整合前端互動介面,讓小助手能真正與使用者對話!
今日目標
MapsActivity 是我們整合 Google Maps 的核心頁面。
它會根據從小助手傳遞過來的 Intent action 來決定要顯示「多個景點」或是「路線導航」。
mapsActivity.java
package com.example.ittext.ui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import com.example.ittext.R;
import java.util.ArrayList;
import java.util.List;
public class MapsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
Intent intent = getIntent();
String action = intent.getStringExtra("action");
if ("show_locations".equals(action)) {
ArrayList<String> places = intent.getStringArrayListExtra("places");
showLocationsOnMap(places);
} else if ("show_route".equals(action)) {
String start = intent.getStringExtra("start");
String end = intent.getStringExtra("end");
ArrayList<String> waypoints = intent.getStringArrayListExtra("waypoints");
showRouteOnMap(start, end, waypoints);
}
}
private void showLocationsOnMap(List<String> places) {
// 在地圖上顯示多個景點
}
private void showRouteOnMap(String start, String end, List<String> waypoints) {
// 在地圖上顯示路線
}
}
ChatRequest 類別是一個輕量但不可或缺的結構,
它負責包裝使用者輸入的文字訊息,
並以乾淨一致的格式送往後端模型,
成為小助手理解語意、生成回應的起點。
ChatRequest.java
package com.example.ittext.ui.chat;
public class ChatRequest {
private String message;
public ChatRequest(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
三、Message — 定義訊息內容與動作
Message 類別代表一條對話訊息,
除了文字內容(content)與發送者(isUser),
還新增了 動作類型 (MessageAction) 與 動作資料 (actionData),
為之後的「語音助理指令 → 地圖動作」做好準備。
Message.java
package com.example.ittext.ui.chat;
public class Message {
private String content;
private boolean isUser;
private MessageAction action; // 新增動作類型
private Object actionData; // 動作相關數據
public Message(String content, boolean isUser, MessageAction action, Object actionData) {
this.content = content;
this.isUser = isUser;
this.action = action;
this.actionData = actionData;
}
// Getters and setters
public MessageAction getAction() {
return action;
}
public Object getActionData() {
return actionData;
}
public String getContent() {
return content;
}
public boolean isUser() {
return isUser;
}
}